package tk.captainsplexx.JavaFX.CellFactories; import java.io.File; import javafx.event.EventHandler; import javafx.scene.control.ListCell; import javafx.scene.image.Image; import javafx.scene.input.MouseEvent; import tk.captainsplexx.Game.Core; import tk.captainsplexx.JavaFX.Controller.ModLoaderController; import tk.captainsplexx.Mod.Mod; import tk.captainsplexx.Resource.FileHandler; public class ModLoaderListFactory extends ListCell<Mod>{ public ModLoaderListFactory(){ setOnMouseClicked(new EventHandler<MouseEvent>(){ @Override public void handle(MouseEvent arg0) { Mod mod = getItem(); ModLoaderController ctrlr = Core.getJavaFXHandler().getMainWindow().getModLoaderWindow().getController(); if (mod != null){ Core.getGame().setCurrentMod(mod); Core.getModTools().getPackages().clear(); Core.getModTools().fetchPackages(); ctrlr.getModName().setText(mod.getName()); ctrlr.getAuthorName().setText(mod.getAuthor()); ctrlr.getGameName().setText(mod.getGame()); ctrlr.getDesc().setWrapText(true); ctrlr.getDesc().setText(mod.getDesc()); File image = new File(mod.getPath()+"/logo.png"); if (image.exists()){ ctrlr.getLogo().setImage(new Image(FileHandler.getStream(image.getAbsolutePath()))); }else{ ctrlr.getLogo().setImage(null); } ctrlr.getRunEditor().setDisable(false); ctrlr.getPlayButton().setDisable(false); File destFolder = new File(mod.getDestFolderPath()); if (destFolder.isDirectory()){ ctrlr.getCheckBox().setVisible(true); ctrlr.getCheckBox().setDisable(false); }else{ ctrlr.getCheckBox().setVisible(false); ctrlr.getCheckBox().setDisable(true); } }else{ ctrlr.getRunEditor().setDisable(true); Core.getGame().setCurrentMod(null); ctrlr.getModName().setText("No mod currently selected!"); ctrlr.getAuthorName().setText(""); ctrlr.getGameName().setText(""); ctrlr.getDesc().setWrapText(true); ctrlr.getDesc().setText(""); ctrlr.getLogo().setImage(null); ctrlr.getRunEditor().setDisable(true); ctrlr.getPlayButton().setDisable(true); ctrlr.getCheckBox().setVisible(false); ctrlr.getCheckBox().setDisable(true); } } }); } @Override protected void updateItem(Mod item, boolean empty) { super.updateItem(item, empty); if (!empty){ String name = item.getFolderName(); File destFolder = new File(item.getDestFolderPath()); if (destFolder.isDirectory()){ name+=" (Compiled)"; } setText(name); }else{ setText(null); } } }